package edu.hawaii.ics414.blackjack.player;

import edu.hawaii.ics414.blackjack.card.Card;
import edu.hawaii.ics414.blackjack.card.GameDeck;

/**
 * Specifies the requirements for a Black Jack AI.
 * Essentially, an AI must have a method to calculate the move to make.
 * 
 * @author Branden Ogata
 *
 */

public abstract class AIPlayer extends Seat
{
  /**
   * Creates a new AIPlayer.
   * 
   * @param money The int equal to the starting amount of money for the new AIPlayer.
   * 
   */
  
  public AIPlayer(int money)
  {
    this.hands = new Card[4][5];
    this.stands = new boolean[4];
    this.bets = new int[4];
    this.money = money; 
    this.lastRound = 0;
    this.lastBet = new int[]{10, 10, 10, 10};
  }
  
  /**
   * Returns the move that the AI should make.
   * 
   * @param deck The GameDeck to get cards from.
   * @param hand The int indicating the hand to use.
   * @param hole The Card that the dealer has showing.
   *
   * @return An Action indicating the move that this AI will make.
   * 
   */
  
  public abstract Action getMove(GameDeck deck, int hand, Card hole);
}
